gambar EBImage
EBImage menyediakan fungsionalitas tujuan umum untuk pemrosesan dan analisis gambar. Dalam konteks pengujian seluler berbasis mikroskop (high-throughput). Hal ini memungkinkan otomatisasi tugas tersebut menggunakan bahasa pemrograman R dan memfasilitasi penggunaan alat lain di lingkungan R untuk pemrosesan sinyal, pemodelan statistik, pembelajaran mesin, dan visualisasi dengan data gambar.
jadi singkatnya. kita bisa menganalisis serta mengedit (mengatur kecerahan, kontras, ukuran, filter, dan lain-lain) dari gambar tersebut agar sesuai keinginan kita. Lalu bagaimana caranya untuk menganalisis sebuah gambar?
Jadi kita harus meng-instal terlebih dahulu packages EBImage pada console dengan memasukkan tulisan seperti dibawah ini, lalu klik enter. Maka komputer akan otomatis meng-instal packages EBImage dan kita harus menunggu beberapa menit.
gambar instal library
Setelah selesai men-instal library, langkah selanjutnya adalah mengimpor library dengan kode program berikut ini :
library(EBImage)
Selanjutnya kita dapat meng-impor gambar yang diinginkan. Di sini saya mencoba untuk meng-impor gambar dari Universitas Islam Negeri Maulana Malik Ibrahim Malang dari komputer saya, dengan kode program sebagai berikut :
Image <- readImage("D:/UIN Malang.jpg")
display(Image)
Kita bisa mengetahui detail dari gambar diatas dengan mengetikkan kode berikut :
print(Image)
## Image
## colorMode : Color
## storage.mode : double
## dim : 4160 3120 3
## frames.total : 3
## frames.render: 1
##
## imageData(object)[1:5,1:6,1]
## [,1] [,2] [,3] [,4] [,5] [,6]
## [1,] 0.09411765 0.03137255 0.07450980 0.10196078 0.09803922 0.10196078
## [2,] 0.09411765 0.04705882 0.08627451 0.11372549 0.09803922 0.09019608
## [3,] 0.10196078 0.08235294 0.09803922 0.09803922 0.08627451 0.09803922
## [4,] 0.12549020 0.10196078 0.09803922 0.10980392 0.10980392 0.10196078
## [5,] 0.11372549 0.10980392 0.10980392 0.11764706 0.12549020 0.11764706
Kita bisa mengetahui detail histogram dari gambar diatas dengan mengetikkan kode berikut :
hist(Image)
Disini kita akan mencoba untuk memanipulasi kecerahan gambar menggunakan tanda + dan - pada intensitas/kecerahan gambar. Pada gambar a kecerahan ditambah 0.2 dan gambar b kecerahan ditambah 0.2 didapatkan perbandingan di bawah. Berikut kode programnya :
a <- Image + 0.2
b <- Image - 0.3
par(mfrow = c(1,2))
plot(a)
plot(b)
Kita akan mencoba untuk memanipulasi kontras gambar menggunakan tanda * pada kontras gambar. Pada gambar a kecerahan ditambah 0.2 dan gambar b kecerahan ditambah 0.2 didapatkan perbandingan di bawah. Berikut kode programnya :
c <- Image * 2
d <- Image * 0.6
par(mfrow = c(1,2))
plot(c)
plot(d)
Kita akan mencoba untuk memanipulasi gamma gambar menggunakan tanda ^. Pada gambar pertama menggunakan 4 dan gambar kedua menggunakan 0.3 didapatkan perbandingan di bawah. Berikut kode programnya :
e <- Image ^ 4
f <- Image ^ 0.3
par(mfrow = c(1,2))
plot(e)
plot(f)
Kita akan mencoba memotong gambar dengan kode berikut :
display(Image[189:1000, 100:600,])
Kita akan mencoba memutar gambar dengan posisi 45 derajat dengan kode berikut :
Imagetr <- translate(rotate(Image, 45), c(0, 50))
display(Imagetr)
Karena array piksel memiliki tiga sumbu di dimensi. Sumbu ketiga adalah slot untuk tiga saluran: merah, hijau dan biru, atau RGB. Disini saya akan membuat gambarnya berwarna hitam putih dengan kode beikut :
colorMode(Image) <- Grayscale
print(Image)
## Image
## colorMode : Grayscale
## storage.mode : double
## dim : 4160 3120 3
## frames.total : 3
## frames.render: 3
##
## imageData(object)[1:5,1:6,1]
## [,1] [,2] [,3] [,4] [,5] [,6]
## [1,] 0.09411765 0.03137255 0.07450980 0.10196078 0.09803922 0.10196078
## [2,] 0.09411765 0.04705882 0.08627451 0.11372549 0.09803922 0.09019608
## [3,] 0.10196078 0.08235294 0.09803922 0.09803922 0.08627451 0.09803922
## [4,] 0.12549020 0.10196078 0.09803922 0.10980392 0.10980392 0.10196078
## [5,] 0.11372549 0.10980392 0.10980392 0.11764706 0.12549020 0.11764706
Dibawah ini merupakah hasil dari manajeman warna diatas
display(Image)
## Only the first frame of the image stack is displayed.
## To display all frames use 'all = TRUE'.
lalu bisa kita buat menjadi berwarna kembali
colorMode(Image) <- Color
display(Image)
Pada bagian ini kita akan melakukan smoothing / blurring menggunakan low-pass filter dan deteksi tepi menggunakan high-pass filter. Berikut kodenya :
fLow <- makeBrush(21, shape= 'disc', step=FALSE)^2
fLow <- fLow/sum(fLow)
Image.fLow <- filter2(Image, fLow)
display(Image.fLow)
fHigh <- matrix(1, nc = 3, nr = 3)
fHigh[2, 2] <- -8
Image.fHigh <- filter2(Image, fHigh)
display(Image.fHigh)
Sekian dari saya kurang lebihnya mohon maaf. Jangan lupa tunggu update selanjutnya
Copyright : Prof. Dr. Suhartono S.Si M.Kom UIN Maulana Malik Ibrahim Malang
Daftar pustaka :